RTCRoomConfig

成员属性

名称 类型 只读 描述
room_profile_type RoomProfileType 否 房间模式,参看 RoomProfileType ,默认为普通音视频通话模式,进房后不可更改。
is_auto_publish boolean 否 是否自动发布音视频流,默认为自动发布。

若调用 setUserVisibility 将自身可见性设为 false,无论是默认的自动发布流还是手动设置的自动发布流都不会进行发布,你需要将自身可见性设为 true 后方可发布。
is_auto_subscribe_audio boolean 否 是否自动订阅音频流,默认为自动订阅。

进房后,你可以调用 subscribeUserStream 修改订阅设置。
is_auto_subscribe_video boolean 否 是否自动订阅主视频流,默认为自动订阅。

进房后,你可以调用 subscribeUserStream 修改订阅设置。
屏幕流始终自动订阅,不受该方法影响。

RoomProfileType

房间模式

名称 值 描述
kRoomProfileTypeCommunication 0 普通音视频通话模式。

你应在 1V1 音视频通话时,使用此设置。

此设置下,弱网抗性较好。
kRoomProfileTypeLiveBroadcasting 1 直播模式。

当你对音视频通话的音质和画质要求较高时,应使用此设置。

此设置下,当用户使用蓝牙耳机收听时,蓝牙耳机使用媒体模式。
kRoomProfileTypeGame 2 游戏语音模式。此模式下延时较低。

低端机在此模式下运行时,进行了额外的性能优化:

+ 采集播放采用 16kHz 单通道采样

+ 部分低端机型配置编码帧长 40/60

+ 部分低端机型关闭软件 3A 音频处理

增强对 iOS 其他屏幕录制进行的兼容性,避免音频录制被 RTC 打断。
kRoomProfileTypeCloudGame 3 云游戏模式。

如果你需要低延迟、高码率的设置时,你可以使用此设置。

此设置下,弱网抗性较差。
kRoomProfileTypeLowLatency 4 低时延模式。SDK 会使用低延时设置。

当你的场景非游戏或云游戏场景,又需要极低延时的体验时,可以使用该模式。

该模式下,音视频通话延时会明显降低,但同时弱网抗性、通话音质等均会受到一定影响。

在使用此模式前,强烈建议咨询技术支持同学。

PauseResumeControlMediaType

暂停/恢复接收远端的媒体流类型。

名称 值 描述
kRTCPauseResumeControlMediaTypeAudio 0 只控制音频,不影响视频
kRTCPauseResumeControlMediaTypeVideo 1 只控制视频,不影响音频
kRTCPauseResumeControlMediaTypeVideoAndAudio 2 同时控制音频和视频

VideoSolution

视频属性

成员属性

名称 类型 只读 描述
width number 否 视频的宽
height number 否 视频的高
fps number 否 画面每秒传输帧数
maxSendKbps number 否 最大发送编码码率(kbps),建议使用自动码率。
  • -1: 自动码率
  • 0: 不开启上限
  • >0: 填写预估码率
  • scaleMode ScaleMode 否 缩放模式,详见 ScaleMode
    encodePreference EncodePreference 否 视频编码质量偏好,详见 EncodePreference

    ScaleMode

    名称 值 描述
    Auto 0 自由模式,默认使用FitWithCropping模式
    Stretch 1 视频尺寸进行缩放和拉伸以充满显示视窗
    FitWithCropping 2 优先保证视窗被填满。视频尺寸等比缩放,直至整个视窗被视频填满。如果视频长宽与显示窗口不同,多出的视频将被截掉
    FitWithFilling 3 优先保证视频内容全部显示。视频尺寸等比缩放,直至视频窗口的一边与视窗边框对齐。如果视频长宽与显示窗口不同,视窗上未被填满的区域将被涂黑

    EncodePreference

    视频编码质量偏好
    网络不好时的编码策略

    名称 值 描述
    EncodePreferenceDisabled 0 关闭
    EncodePreferenceFramerate 1 保持帧率
    EncodePreferenceQuality 2 保持画质
    EncodePreferenceBalance 3 平衡模式

    MirrorMode

    是否开启镜像模式

    名称 值 描述
    kMirrorModeOff 0 不开启
    kMirrorModeOn 1 开启

    ScreenCaptureSourceInfo

    屏幕共享对象信息
    startScreenVideoCapture 接口的其中一个参数类型

    成员属性

    名称 类型 只读 描述
    type ScreenCaptureSourceType 否 共享对象类型,屏幕或应用窗体
    source_id number 否 共享对象 ID
    source_name string 否 屏幕源名称,采集源为应用窗体有效
    application string 否 应用名称,采集源为应用窗体有效
    primaryMonitor boolean 否 是否主屏,采集源为屏幕时有效
    x number 否 共享对象 x 坐标。多显示器的场景下,屏幕坐标系统以主屏左上角为原点 (0, 0),向右向下扩展。
    y number 否 共享对象 y 坐标。多显示器的场景下,屏幕坐标系统以主屏左上角为原点 (0, 0),向右向下扩展。
    width number 否 共享对象宽度
    height number 否 共享对象高度
    pid number 否 窗口所属进程 pid,采集源为应用窗体有效

    ScreenCaptureSourceType

    屏幕采集对象的类型

    名称 值 描述
    kScreenCaptureSourceTypeUnknown 0 类型未知
    kScreenCaptureSourceTypeWindow 1 应用程序的窗口
    kScreenCaptureSourceTypeScreen 2 桌面

    ScreenCaptureParameters

    屏幕共享时,内部采集参数配置

    成员属性

    名称 类型 只读 描述
    region_rect Rectangle 否 采集区域,参看 Rectangle
    capture_mouse_cursor MouseCursorCaptureState 否 是否采集鼠标状态,参看 MouseCursorCaptureState
    filter_config number[] 否 屏幕过滤设置,参看 ScreenFilterConfig
    highlight_config HighlightConfig 否 采集区域的边框高亮设置,参看 HighlightConfig

    Rectangle

    成员属性

    名称 类型 只读 描述
    x number 否 矩形左上角x坐标
    y number 否 矩形左上角y坐标
    width number 否 矩形宽度
    height number 否 矩形高度

    MouseCursorCaptureState

    内部采集屏幕视频流时,是否采集鼠标信息

    名称 值 描述
    kMouseCursorCaptureStateOn 0 采集鼠标信息
    kMouseCursorCaptureStateOff 1 不采集鼠标信息

    HighlightConfig

    高亮边框标识屏幕共享指定区域

    成员属性

    名称 类型 只读 描述
    enableHighlight boolean 否 是否显示高亮边框,默认显示。
    borderColor number 否 边框的颜色, 颜色格式为十六进制 ARGB: 0xAARRGGBB, 默认为 0xFF29CCA3
    borderWidth number 否 边框的宽度, 默认为: 4

    ThumbnailInfo

    屏幕共享对象缩略图
    调用 getThumbnail 后返回本对象

    成员属性

    名称 类型 只读 描述
    width number 否 宽度,单位:像素
    height number 否 高度,单位:像素
    data string 否 数据,采用 base64 编码的 png 字符串

    AppIconInfo

    共享窗体的图标信息
    调用 getWindowAppIcon 后返回本对象

    成员属性

    名称 类型 只读 描述
    width number 否 宽度,单位:像素
    height number 否 高度,单位:像素
    data string 否 数据,采用 base64 编码的 png 字符串

    AudioMixingConfig

    混音配置

    成员属性

    名称 类型 只读 描述
    type AudioMixingType 否 混音播放类型,详见 AudioMixingType
    play_count number 否 混音播放次数,

    AudioMixingType

    混音播放类型

    名称 值 描述
    kAudioMixingTypePlayout 0 仅本地播放
    kAudioMixingTypePublish 1 仅远端播放
    kAudioMixingTypePlayoutAndPublish 2 本地和远端同时播放

    RemoteUserPriority

    名称 值 描述
    kRemoteUserPriorityLow 0 用户优先级为低(默认值)
    kRemoteUserPriorityMedium 100 用户优先级为正常
    kRemoteUserPriorityHigh 200 用户优先级为高

    SubscribeVideoConfig

    视频订阅配置信息

    成员属性

    名称 类型 只读 描述
    video_index number 否 订阅的视频流分辨率下标。

    当远端用户通过调用 SetVideoEncoderConfig 方法启动发布多路不同分辨率的视频流时,本地用户需通过此参数指定希望订阅的流。

    默认值为 0,即订阅第一路流。

    如果不想更改之前的设置,可以输入 -1。
    priority number 否 远端用户优先级,参看 RemoteUserPriority ,默认值为 0。

    RecordingConfig

    本地录制参数配置

    成员属性

    名称 类型 只读 描述
    dir_path String 否 录制文件保存的绝对路径。你需要指定一个有读写权限的合法路径。
    file_type Number 否 录制存储文件格式
    aac : 0
    mp4 : 1
    recording_type Number 否 录制媒体类型
    只录制音频 : 0
    只录制视频 : 1
    同时录制音频和视频: 2

    RTCASRConfig

    使用自动语音识别服务所需校验信息

    成员属性

    名称 类型 只读 描述
    app_id String 否 应用 ID
    user_id String 否 用户 ID
    authorization_type number 否 鉴权方式,参看 ASRAuthorizationType
    access_token String 否 访问令牌
    secret_key String 否 私钥。Signature 鉴权模式下不能为空,token 鉴权模式下为空。参看关于鉴权
    cluster String 否 场景信息,参看业务集群

    TranscoderParam

    转推直播参数

    成员属性

    名称 类型 只读 描述
    roomID string 否 当前房间 ID
    userID string 否 当前用户 ID
    uri string 否 背景图片地址
    audioParam TranscoderAudioParam 否 音频参数
    videoParam TranscoderVideoParam 否 视频参数
    layoutRegions TranscoderLayoutRegion[] 否 布局设置
    backgroundColor string 否 背景颜色
    appData string 否 设置透传的 App 数据

    TranscoderAudioParam

    音频参数

    成员属性

    名称 类型 只读 描述
    i32_sample_rate number 否 采样率,单位 Hz,包括 16k, 32k, 44.1k, 48k
    i32_channel_num number 否 声道数
    i32_bitrate_kbps number 否 编码码率,单位 Kbps,包括 16kbsp, 32kbps, 64kbps
    audio_codec_profile TranscoderAudioCodecProfile 否 音频编码 AAC 等级

    TranscoderAudioCodecProfile

    转推直播音频编码 AAC 等级

    名称 值 描述
    kByteAACProfileLC 0 AAC-LC
    kByteAACProfileMain 1 AAC-MAIN
    kByteAACProfileHEv1 2 HE-AAC v1
    kByteAACProfileHEv2 3 HE-AAC v2

    TranscoderVideoParam

    视频参数

    成员属性

    名称 类型 只读 描述
    i32_width number 否 宽度
    i32_height number 否 高度
    i32_fps number 否 帧率
    i32_gop number 否 gop
    i32_bitrate_kpbs number 否 编码码率,单位 Kbps
    video_codec_profile TranscoderVideoCodecProfile 否 编码参数
    lowLatency boolean 否 是否开启低延迟

    TranscoderVideoCodecProfile

    转推直播视频编码参数

    名称 值 描述
    kByteH264ProfileBaseline 0 H264 格式基本规格编码
    kByteH264ProfileMain 1 H264 格式主流规格编码
    kByteH264ProfileHigh 2 H264 格式高规格编码
    kByteVC1ProfileBaseline 3 ByteVC1 格式基本规格编码
    kByteVC1ProfileMain 4 ByteVC1 格式主流规格编码
    kByteVC1ProfileHigh 5 ByteVC1 格式高规格编码

    TranscoderLayoutRegion

    布局设置

    成员属性

    名称 类型 只读 描述
    region_id string 否 合流用户的 ID。必填。
    room_id string 否 媒体流所在房间的房间 ID。
    x number 否 用户视频布局相对画布左侧的偏移量,取值的范围为 [0.0, 1.0)
    y number 否 用户视频布局相对画布顶端的偏移量,取值的范围为 [0.0, 1.0)
    width number 否 用户视频宽度相对画布宽度的比例,取值的范围为 (0.0, 1.0]
    height number 否 用户视频高度相对画布高度的比例,取值的范围为 (0.0, 1.0]
    alpha number 否 透明度,取值范围 [0,255]
    i32_z_order number 否 用户视频布局在画布中的层级,取值范围 [0,100],0 为底层,值越大层级越高
    local_user boolean 否 是否为本地用户
    screen_stream boolean 否 是否为屏幕流
    content_control TranscoderContentControlType 否 合流输出内容
    render_mode TranscoderRenderMode 否 渲染时,视频内容缩放模式

    TranscoderContentControlType

    转推直播媒体类型

    名称 值 描述
    kHasAudioAndVideo 0 音视频
    kHasAudioOnly 1 音频
    kHasVideoOnly 2 视频

    TranscoderRenderMode

    转推直播视频渲染模式

    名称 值 描述
    kRenderHidden 1 视频尺寸等比缩放,优先保证窗口被填满。当视频尺寸与显示窗口尺寸不一致时,多出的视频将被截掉。
    kRenderFit 2 视频尺寸等比缩放,优先保证视频内容全部显示。当视频尺寸与显示窗口尺寸不一致时,会把窗口未被填满的区域填充成黑色。
    kRenderAdaptive 3 视频尺寸非等比例缩放,把窗口充满。当视频尺寸与显示窗口尺寸不一致时,视频高或宽方向会被拉伸。

    RenderOptions

    本地渲染选项

    成员属性

    名称 类型 只读 描述
    renderMode RenderMode 否 渲染模式
    mirror boolean 否 是否镜像渲染

    RenderMode

    名称 值 描述
    FIT 1
    HIDDEN 2

    VideoFrame

    视频数据

    成员属性

    名称 类型 只读 描述
    channelId string 否 频道 ID
    userId string 否 用户 ID
    planeY Uint8Array 否 视频数据缓冲区 Y
    planeU Uint8Array 否 视频数据缓冲区 U
    planeV Uint8Array 否 视频数据缓冲区 V
    width number 否 视频分辨率宽度,单位:像素
    height number 否 视频分辨率高度,单位:像素
    planeSizeY number 否 视频数据缓冲区 Y 大小
    planeSizeU number 否 视频数据缓冲区 U 大小
    planeSizeV number 否 视频数据缓冲区 V 大小
    format number 否 视频帧数据格式
    rotation number 否 视频帧旋转角度

    AudioMixingState

    音频混音文件播放状态。

    名称 值 描述
    kAudioMixingStatePreloaded 0 混音已加载
    kAudioMixingStatePlaying 1 混音正在播放
    kAudioMixingStatePaused 2 混音暂停
    kAudioMixingStateStopped 3 混音停止
    kAudioMixingStateFailed 4 混音播放失败
    kAudioMixingStateFinished 5 混音播放结束

    AudioMixingError

    音频混音文件播放错误码。

    名称 值 描述
    kAudioMixingErrorOk 0 混音错误码,正常
    kAudioMixingErrorPreloadFailed 1 预加载失败,找不到混音文件或者文件长度超出 20s
    kAudioMixingErrorStartFailed 2 混音开启失败,找不到混音文件或者混音文件打开失败
    kAudioMixingErrorIdNotFound 3 混音 ID 异常
    kAudioMixingErrorSetPositionFailed 4 设置混音文件的播放位置出错
    kAudioMixingErrorInValidVolume 5 音量参数不合法,仅支持设置的音量值为[0 400]
    kAudioMixingErrorLoadConflict 6 播放的文件与预加载的文件不一致,请先使用 UnloadAudioMixing 卸载文件

    ConnectionState

    SDK 与信令服务器连接状态。

    名称 值 描述
    kConnectionStateDisconnected 1 连接断开。
    kConnectionStateConnecting 2 首次连接,正在连接中。
    kConnectionStateConnected 3 首次连接成功。
    kConnectionStateReconnecting 4 连接断开后重新连接中。
    kConnectionStateReconnected 5 连接断开后重连成功。
    kConnectionStateLost 6 网络连接断开超过 10 秒,仍然会继续重连。

    NetworkType

    SDK 网络连接类型。

    名称 值 描述
    kNetworkTypeUnknown -1 网络连接类型未知。
    kNetworkTypeDisconnected 0 网络连接已断开。
    kNetworkTypeLAN 1 网络连接类型为 LAN 。
    kNetworkTypeWIFI 2 网络连接类型为 Wi-Fi(包含热点)。
    kNetworkTypeMobile2G 3 网络连接类型为 2G 移动网络。
    kNetworkTypeMobile3G 4 网络连接类型为 3G 移动网络。
    kNetworkTypeMobile4G 5 网络连接类型为 4G 移动网络。
    kNetworkTypeMobile5G 6 网络连接类型为 5G 移动网络。

    PerformanceAlarmMode

    是否开启发布性能回退

    名称 值 描述
    kPerformanceAlarmModeNormal 0 未开启发布性能回退
    kPerformanceAlarmModeSimulcast 1 已开启发布性能回退

    PerformanceAlarmReason

    OnPerformanceAlarms 告警的原因

    名称 值 描述
    kPerformanceAlarmReasonBandwidthFallbacked 0 网络原因差,造成了发送性能回退。仅在开启发送性能回退时,会收到此原因。
    kPerformanceAlarmReasonBandwidthResumed 1 网络性能恢复,发送性能回退恢复。仅在开启发送性能回退时,会收到此原因。
    kPerformanceAlarmReasonPerformanceFallbacked 2 如果未开启发送性能回退,收到此告警时,意味着性能不足;
    如果开启了发送性能回退,收到此告警时,意味着性能不足,且已发生发送性能回退。
    kPerformanceAlarmReasonPerformanceResumed 3 如果未开启发送性能回退,收到此告警时,意味着性能不足已恢复;
    如果开启了发送性能回退,收到此告警时,意味着性能不足已恢复,且已发生发送性能回退恢复。

    MediaDeviceType

    当前媒体设备类型

    名称 值 描述
    kMediaDeviceTypeAudioRenderDevice 0 音频渲染设备类型
    kMediaDeviceTypeAudioCaptureDevice 1 音频采集设备类型
    kMediaDeviceTypeVideoCaptureDevice 3 视频采集设备类型

    MediaDeviceState

    媒体设备状态类型

    名称 值 描述
    kMediaDeviceStateStarted 1 设备已开启
    kMediaDeviceStateStopped 2 设备已停止
    kMediaDeviceStateRuntimeError 3 设备运行时错误
    kMediaDeviceStateAdded 10 设备已插入
    kMediaDeviceStateRemoved 11 设备被移除

    MediaDeviceError

    媒体设备错误类型

    名称 值 描述
    kMediaDeviceErrorOK 0 媒体设备正常
    kMediaDeviceErrorDeviceNoPermission 1 没有权限启动媒体设备
    kMediaDeviceErrorDeviceBusy 2 媒体设备已经在使用中
    kMediaDeviceErrorDeviceFailure 3 媒体设备错误
    kMediaDeviceErrorDeviceNotFound 4 未找到指定的媒体设备
    kMediaDeviceErrorDeviceDisconnected 5 媒体设备被移除

    SysStats

    App 使用的 cpu 和内存信息。

    信息由 SDK 周期性(2s)地通过 OnSysStats 回调通知给用户。

    成员属性

    名称 类型 只读 描述
    cpu_cores number 否 当前系统 CPU 核数
    cpu_app_usage number 否 当前应用的 cpu 使用率,取值范围为 [0, 1]。
    cpu_total_usage number 否 当前系统的 cpu 使用率,取值范围为 [0, 1]。
    memory_usage number 否 当前应用的内存使用量(单位 MB)
    full_memory number 否 全量内存(单位字节)
    total_memory_usage number 否 系统已使用内存(单位字节)
    free_memory number 否 空闲可分配内存(单位字节)
    memory_ratio number 否 当前应用的内存使用率(单位 %)
    total_memory_ratio number 否 系统内存使用率(单位 %)

    JoinRoomType

    用户加入房间的类型。

    名称 值 描述
    kJoinRoomTypeFirst 0 首次加入房间。用户手动调用 joinRoom ,收到加入成功。
    kJoinRoomTypeReconnected 1 重新加入房间。用户网络较差,失去与服务器的连接,进行重连时收到加入成功。

    AudioVolumeInfo

    成员属性

    名称 类型 只读 描述
    userId string 否
    volume number 否

    RtcRoomStats

    通话相关的统计信息

    成员属性

    名称 类型 只读 描述
    txLostrate number 否 当前应用的上行丢包率,取值范围为 [0, 1]。
    rxLostrate number 否 当前应用的下行丢包率,取值范围为 [0, 1]。
    rtt number 否 客户端到服务端数据传输的往返时延(单位 ms)
    duration number 否 通话时长,单位为秒,累计值
    tx_bytes number 否 本地用户的总发送字节数 (bytes),累计值
    rx_bytes number 否 本地用户的总接收字节数 (bytes),累计值
    tx_kbitrate number 否 发送码率 (kbps),获取该数据时的瞬时值
    rx_kbitrate number 否 接收码率 (kbps),获取该数据时的瞬时值
    rx_audio_kbitrate number 否 音频接收码率 (kbps),获取该数据时的瞬时值
    tx_audio_kbitrate number 否 音频发送码率 (kbps),获取该数据时的瞬时值
    rx_video_kbitrate number 否 视频接收码率 (kbps),获取该数据时的瞬时值
    tx_video_kbitrate number 否 视频发送码率 (kbps),获取该数据时的瞬时值
    user_count number 否 当前房间内的用户人数

    LocalStreamStats

    成员属性

    名称 类型 只读 描述
    audio_stats LocalAudioStats 否 本地设备发送音频流的统计信息,详见 LocalAudioStats
    video_stats LocalVideoStats 否 本地设备发送视频流的统计信息,详见 LocalVideoStats
    local_tx_quality NetworkQuality 否 所属用户的媒体流上行网络质量,详见 NetworkQuality
    local_rx_quality NetworkQuality 否 所属用户的媒体流下行网络质量,详见 NetworkQuality
    is_screen boolean 否 所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

    LocalAudioStats

    本地音频流统计信息,统计周期为 2s 。
    本地用户发布音频流成功后,SDK 会周期性地通过 OnLocalStreamStats
    通知用户发布的音频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。

    成员属性

    名称 类型 只读 描述
    audio_loss_rate number 否 音频丢包率。此次统计周期内的音频上行丢包率,单位为 % ,取值范围为 [0, 1]。
    send_kbitrate number 否 发送码率。此次统计周期内的音频发送码率,单位为 kbps 。
    record_sample_rate number 否 采集采样率。此次统计周期内的音频采集采样率信息,单位为 Hz 。
    stats_interval number 否 统计间隔。此次统计周期的间隔,单位为 ms 。
    rtt number 否 往返时延。单位为 ms 。
    num_channels number 否 音频声道数。
    sent_sample_rate number 否 音频发送采样率。此次统计周期内的音频发送采样率信息,单位为 Hz 。

    LocalVideoStats

    本地视频流统计信息,统计周期为 2s 。

    本地用户发布视频流成功后,SDK 会周期性地通过 OnLocalStreamStats
    通知用户发布的视频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。

    成员属性

    名称 类型 只读 描述
    sent_kbitrate number 否 发送码率。此次统计周期内的视频发送码率,单位为 kbps 。
    input_frame_rate number 否 采集帧率。此次统计周期内的视频采集帧率,单位为 fps 。
    sent_frame_rate number 否 发送帧率。此次统计周期内的视频发送帧率,单位为 fps 。
    encoder_output_frame_rate number 否 编码器输出帧率。当前编码器在此次统计周期内的输出帧率,单位为 fps 。
    renderer_output_frame_rate number 否 本地渲染帧率。此次统计周期内的本地视频渲染帧率,单位为 fps 。
    target_kbitrate number 否 目标发送码率。此次统计周期内的视频目标发送码率,单位为 kbps 。
    target_frame_rate number 否 目标发送帧率。当前编码器在此次统计周期内的目标发送帧率,单位为 fps 。
    stats_interval number 否 统计间隔,单位为 ms 。
    video_loss_rate number 否 视频丢包率。此次统计周期内的视频上行丢包率,取值范围为 [0,1] 。
    rtt number 否 往返时延,单位为 ms 。
    encoded_bitrate number 否 视频编码码率。此次统计周期内的视频编码码率,单位为 kbps 。
    encoded_frame_width number 否 视频编码宽度,单位为 px 。
    encoded_frame_height number 否 视频编码高度,单位为 px 。
    encoded_frame_count number 否 此次统计周期内发送的视频帧总数。
    codec_type VideoCodecType 否 视频的编码类型,具体参考 VideoCodecType 。
    is_screen boolean 否 所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

    VideoCodecType

    视频的编码类型

    名称 值 描述
    kVideoCodecUnknown 0 未知类型
    kVideoCodecH264 1 标准H264
    kVideoCodecByteVC1 2 标准ByteVC1

    NetworkQuality

    媒体流网络质量。

    名称 值 描述
    kNetworkQualityUnknown 0 网络质量未知。
    kNetworkQualityExcellent 1 网络质量极好。
    kNetworkQualityGood 2 主观感觉和 kNetworkQualityExcellent 差不多,但码率可能略低。
    kNetworkQualityPoor 3 主观感受有瑕疵但不影响沟通。
    kNetworkQualityBad 4 勉强能沟通但不顺畅。
    kNetworkQualityVbad 5 网络质量非常差,基本不能沟通。

    RemoteStreamStats

    用户订阅的远端音/视频流统计信息以及网络状况,统计周期为 2s 。

    订阅远端用户发布音/视频流成功后,SDK 会周期性地通过 OnRemoteStreamStats 通知本地用户订阅的远端音/视频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。

    成员属性

    名称 类型 只读 描述
    uid String 否 用户 ID 。音频来源的远端用户 ID 。
    audio_stats RemoteAudioStats 否 远端音频流的统计信息,详见 RemoteAudioStats
    video_stats RemoteVideoStats 否 远端视频流的统计信息,详见 RemoteVideoStats
    remote_tx_quality NetworkQuality 否 所属用户的媒体流上行网络质量,详见 NetworkQuality
    remote_rx_quality NetworkQuality 否 所属用户的媒体流下行网络质量,详见 NetworkQuality
    is_screen boolean 否 所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

    RemoteAudioStats

    远端音频流统计信息,统计周期为 2s。

    本地用户订阅远端音频流成功后,SDK 会周期性地通过 OnRemoteStreamStats 通知本地用户订阅的音频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。

    成员属性

    名称 类型 只读 描述
    audio_loss_rate number 否 音频丢包率。统计周期内的音频下行丢包率,取值范围为 [0, 1] 。
    received_kbitrate number 否 接收码率。统计周期内的音频接收码率,单位为 kbps 。
    stall_count number 否 音频卡顿次数。统计周期内的卡顿次数。
    stall_duration number 否 音频卡顿时长。统计周期内的卡顿时长,单位为 ms 。
    e2e_delay number 否 用户体验级别的端到端延时。从发送端采集完成编码开始到接收端解码完成渲染开始的延时,单位为 ms 。
    playout_sample_rate number 否 播放采样率。统计周期内的音频播放采样率信息,单位为 Hz 。
    stats_interval number 否 统计间隔。此次统计周期的间隔,单位为 ms 。
    rtt number 否 客户端到服务端数据传输的往返时延,单位为 ms。
    total_rtt number 否 发送端——服务端——接收端全链路数据传输往返时延。单位为 ms 。
    quality number 否 远端用户发送的音频流质量。值含义参考 NetworkQuality 。
    jitter_buffer_delay number 否 因引入 jitter buffer 机制导致的延时。单位为 ms 。
    num_channels number 否 音频声道数。
    received_sample_rate number 否 音频接收采样率。统计周期内接收到的远端音频采样率信息,单位为 Hz 。
    frozen_rate number 否 远端用户在加入房间后发生音频卡顿的累计时长占音频总有效时长的百分比。音频有效时长是指远端用户进房发布音频流后,除停止发送音频流和禁用音频模块之外的音频时长。
    concealed_samples number 否 音频 PLC 样点总个数。
    concealment_event number 否 PLC 累计次数。
    dec_sample_rate number 否 音频解码采样率。统计周期内的音频解码采样率信息,单位为 Hz 。
    dec_duration number 否 解码时长。对此次统计周期内接收的远端音频流进行解码的总耗时,单位为 s 。

    RemoteVideoStats

    远端音频流统计信息,统计周期为 2s 。

    本地用户订阅远端音频流成功后,SDK 会周期性地通过 OnRemoteStreamStats 通知本地用户订阅的远端视频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。

    成员属性

    名称 类型 只读 描述
    width number 否 视频宽度
    height number 否 视频高度
    video_loss_rate number 否 视频丢包率。统计周期内的视频下行丢包率,单位为 % ,取值范围:[0,1] 。
    received_kbitrate number 否 接收码率。统计周期内的视频接收码率,单位为 kbps 。
    decoder_output_frame_rate number 否 解码器输出帧率。统计周期内的视频解码器输出帧率,单位 fps 。
    renderer_output_frame_rate number 否 渲染帧率。统计周期内的视频渲染帧率,单位 fps 。
    stall_count number 否 卡顿次数。统计周期内的卡顿次数。
    stall_duration number 否 卡顿时长。统计周期内的视频卡顿总时长。单位 ms 。
    e2e_delay number 否 用户体验级别的端到端延时。从发送端采集完成编码开始到接收端解码完成渲染开始的延时,单位为 ms 。
    is_screen number 否 所属用户的媒体流是否为屏幕流。你可以知道当前数据来自主流还是屏幕流。
    stats_interval number 否 统计间隔,此次统计周期的间隔,单位为 ms 。
    rtt number 否 往返时延,单位为 ms 。
    frozen_rate number 否 远端用户在进房后发生视频卡顿的累计时长占视频总有效时长的百分比(%)。视频有效时长是指远端用户进房发布视频流后,除停止发送视频流和禁用视频模块之外的视频时长。
    video_index number 否 对应多种分辨率的流的下标,详见 VideoSolutionDescription

    UserOfflineReasonType

    用户离线原因。

    房间内的远端用户离开房间时,本端用户会收到 OnUserOffline 回调通知,此枚举类型为回调的用户离线原因。

    名称 值 描述
    USER_OFFLINE_QUIT 0 用户主动离开。
    USER_OFFLINE_DROPPED 1 用户掉线。

    MuteState

    停止/启动发送音/视频流的状态

    名称 值 描述
    kMuteStateOff 0 启动发送音/视频流的状态
    kMuteStateOn 1 停止发送音/视频流的状态

    StreamIndex

    流属性

    名称 值 描述
    kStreamIndexMain 0 主流。

    包括:

    + 通过默认摄像头/麦克风采集到的视频/音频;

    + 通过自定义设备采集到的视频/音频。
    kStreamIndexScreen 1 屏幕流。

    屏幕共享时共享的视频流,或来自声卡的本地播放音频流。

    RemoteStreamKey

    远端流信息

    成员属性

    名称 类型 只读 描述
    room_id String 否 房间 ID
    user_id String 否 用户 ID
    stream_index StreamIndex 否 流属性,主流或屏幕流。参看 StreamIndex

    ByteStream

    成员属性

    名称 类型 只读 描述
    userId string 否 用户 ID
    isScreen boolean 否 是否屏幕共享流
    hasVideo boolean 否 是否包含视频
    hasAudio boolean 否 是否包含音频
    profiles VideoSolutionDescription[] 否 视频分辨率描述

    VideoSolutionDescription

    视频属性

    成员属性

    名称 类型 只读 描述
    width number 否 视频的宽
    height number 否 视频的高
    fps number 否 画面每秒传输帧数
    maxSendKbps number 否 最大发送速率(千比特每秒)
    means auto calculate
    means disable send video
    scaleMode ScaleMode 否 缩放模式,详见 ScaleMode
    codecName VideoCodecType 否 编码类型,详见 VideoCodecType
    codecMode CodecMode 否 编码模式,详见 CodecMode
    encodePreference EncodePreference 否 视频编码质量偏好,详见 EncodePreference

    CodecMode

    视频编码模式

    名称 值 描述
    AutoMode 0 自动选择
    HardwareMode 1 硬编码
    SoftwareMode 2 软编码

    StreamRemoveReason

    房间内远端流被移除的原因。

    名称 值 描述
    kStreamRemoveReasonUnpublish 0 远端用户停止发布流。
    kStreamRemoveReasonPublishFailed 1 远端用户发布流失败。
    kStreamRemoveReasonKeepLiveFailed 2 保活失败。
    kStreamRemoveReasonClientDisconnected 3 远端用户断网。
    kStreamRemoveReasonRepublish 4 远端用户重新发布流。
    kStreamRemoveReasonOther 5 其他原因。

    RemoteStreamSwitch

    流切换信息。本地用户订阅的远端流触发回退策略时的流切换信息。

    成员属性

    名称 类型 只读 描述
    uid String 否 订阅的音视频流的发布者的用户 ID。
    is_screen boolean 否 是否是屏幕流。
    before_video_index number 否 流切换前本地用户订阅的视频流的分辨率对应的索引。
    after_video_index number 否 流切换后本地用户订阅的视频流的分辨率对应的索引。
    before_enable boolean 否 流切换前是否有视频流。
    after_enable boolean 否 流切换后是否有视频流。
    reason FallbackOrRecoverReason 否 触发流回退的原因,详见类型 FallbackOrRecoverReason 。

    FallbackOrRecoverReason

    远端订阅流发生回退或恢复的原因

    名称 值 描述
    kFallbackOrRecoverReasonUnknown -1 其他原因,非带宽和性能原因引起的回退或恢复。默认值
    kFallbackOrRecoverReasonSubscribeFallbackByBandwidth 0 由带宽不足导致的订阅端音视频流回退。
    kFallbackOrRecoverReasonSubscribeFallbackByPerformance 1 由性能不足导致的订阅端音视频流回退。
    kFallbackOrRecoverReasonSubscribeRecoverByBandwidth 2 由带宽恢复导致的订阅端音视频流恢复。
    kFallbackOrRecoverReasonSubscribeRecoverByPerformance 3 由性能恢复导致的订阅端音视频流恢复。
    kFallbackOrRecoverReasonPublishFallbackByBandwidth 4 由带宽不足导致的发布端音视频流回退。
    kFallbackOrRecoverReasonPublishFallbackByPerformance 5 由性能不足导致的发布端音视频流回退。
    kFallbackOrRecoverReasonPublishRecoverByBandwidth 6 由带宽恢复导致的发布端音视频流恢复。
    kFallbackOrRecoverReasonPublishRecoverByPerformance 7 由性能恢复导致的发布端音视频流恢复。

    VideoFrameInfo

    成员属性

    名称 类型 只读 描述
    width number 否 宽(像素)
    height number 否 高(像素)
    rotation VideoRotation 否 视频帧顺时针旋转角度。参看 VideoRotation 。

    VideoRotation

    视频帧旋转角度

    名称 值 描述
    kVideoRotation0 0 顺时针旋转 0 度
    kVideoRotation90 90 顺时针旋转 90 度
    kVideoRotation180 180 顺时针旋转 180 度
    kVideoRotation270 270 顺时针旋转 270 度

    LocalAudioStreamState

    本地音频流状态。

    SDK 通过 OnLocalAudioStateChanged 回调本地音频流状态

    名称 值 描述
    kLocalAudioStreamStateStopped 0 本地音频默认初始状态。
    麦克风停止工作时回调该状态,对应错误码 kLocalAudioStreamErrorOk
    kLocalAudioStreamStateRecording 1 本地音频录制设备启动成功。
    采集到音频首帧时回调该状态,对应错误码 kLocalAudioStreamErrorOk
    kLocalAudioStreamStateEncoding 2 本地音频首帧编码成功。
    音频首帧编码成功时回调该状态,对应错误码 kLocalAudioStreamErrorOk
    kLocalAudioStreamStateFailed 3 本地音频启动失败,在以下时机回调该状态:

    + 本地录音设备启动失败,对应错误码 kLocalAudioStreamErrorRecordFailure

    + 检测到没有录音设备权限,对应错误码 kLocalAudioStreamErrorDeviceNoPermission

    + 音频编码失败,对应错误码 kLocalAudioStreamErrorEncodeFailure

    RemoteAudioState

    远端音频流状态。

    用户可以通过 OnRemoteAudioStateChanged 了解该状态。

    名称 值 描述
    kRemoteAudioStateStopped 0 不接收远端音频流。

    以下情况下会触发回调 OnRemoteAudioStateChanged :

    + 本地用户停止接收远端音频流,对应原因是: kRemoteAudioStateChangeReasonLocalMuted

    + 远端用户停止发送音频流,对应原因是: kRemoteAudioStateChangeReasonRemoteMuted

    + 远端用户离开房间,对应原因是: kRemoteAudioStateChangeReasonRemoteOffline
    kRemoteAudioStateStarting 1 开始接收远端音频流首包。

    刚收到远端音频流首包会触发回调 OnRemoteAudioStateChanged ,
    对应原因是: kRemoteAudioStateChangeReasonLocalUnmuted。
    kRemoteAudioStateDecoding 2 远端音频流正在解码,正常播放。

    以下情况下会触发回调 OnRemoteAudioStateChanged :

    + 成功解码远端音频首帧,对应原因是: kRemoteAudioStateChangeReasonLocalUnmuted
    + 网络由阻塞恢复正常,对应原因是: kRemoteAudioStateChangeReasonNetworkRecovery
    + 本地用户恢复接收远端音频流,对应原因是: kRemoteAudioStateChangeReasonLocalUnmuted
    + 远端用户恢复发送音频流,对应原因是: kRemoteAudioStateChangeReasonRemoteUnmuted
    kRemoteAudioStateFrozen 3 远端音频流卡顿。

    网络阻塞、丢包率大于 40% 时,会触发回调 OnRemoteAudioStateChanged ,
    对应原因是: kRemoteAudioStateChangeReasonNetworkCongestion

    RemoteAudioStateChangeReason

    接收远端音频流状态改变的原因。

    用户可以通过 OnRemoteAudioStateChanged 了解该原因。

    名称 值 描述
    kRemoteAudioStateChangeReasonInternal 0 内部原因
    kRemoteAudioStateChangeReasonNetworkCongestion 1 网络阻塞
    kRemoteAudioStateChangeReasonNetworkRecovery 2 网络恢复正常
    kRemoteAudioStateChangeReasonLocalMuted 3 本地用户停止接收远端音频流
    kRemoteAudioStateChangeReasonLocalUnmuted 4 本地用户恢复接收远端音频流
    kRemoteAudioStateChangeReasonRemoteMuted 5 远端用户停止发送音频流
    kRemoteAudioStateChangeReasonRemoteUnmuted 6 远端用户恢复发送音频流
    kRemoteAudioStateChangeReasonRemoteOffline 7 远端用户离开房间

    LocalVideoStreamState

    本地视频流状态

    名称 值 描述
    kLocalVideoStreamStateStopped 0 本地视频采集停止状态
    kLocalVideoStreamStateRecording 1 本地视频采集设备启动成功
    kLocalVideoStreamStateEncoding 2 本地视频采集后,首帧编码成功
    kLocalVideoStreamStateFailed 3 本地视频采集设备启动失败

    LocalVideoStreamError

    本地视频状态改变时的错误码

    名称 值 描述
    kLocalVideoStreamErrorOk 0 状态正常
    kLocalVideoStreamErrorFailure 1 本地视频流发布失败
    kLocalVideoStreamErrorDeviceNoPermission 2 没有权限启动本地视频采集设备
    kLocalVideoStreamErrorDeviceBusy 3 本地视频采集设备被占用
    kLocalVideoStreamErrorDeviceNotFound 4 本地视频采集设备不存在
    kLocalVideoStreamErrorCaptureFailure 5 本地视频采集失败,建议检查采集设备是否正常工作
    kLocalVideoStreamErrorEncodeFailure 6 本地视频编码失败
    kLocalVideoStreamErrorDeviceDisconnected 7 本地视频采集设备被移除

    RemoteVideoState

    远端视频流状态。状态改变时,会收到回调: OnRemoteVideoStateChanged

    名称 值 描述
    kRemoteVideoStateStopped 0 远端视频流默认初始状态,视频尚未开始播放。
    kRemoteVideoStateStarting 1 本地用户已接收远端视频流首包。
    kRemoteVideoStateDecoding 2 远端视频流正在解码,正常播放。
    kRemoteVideoStateFrozen 3 远端视频流卡顿,可能有网络等原因。
    kRemoteVideoStateFailed 4 远端视频流播放失败。

    RemoteVideoStateChangeReason

    远端视频流状态改变的原因

    名称 值 描述
    kRemoteVideoStateChangeReasonInternal 0 内部原因
    kRemoteVideoStateChangeReasonNetworkCongestion 1 网络阻塞
    kRemoteVideoStateChangeReasonNetworkRecovery 2 网络恢复正常
    kRemoteVideoStateChangeReasonLocalMuted 3 本地用户停止接收远端视频流或本地用户禁用视频模块
    kRemoteVideoStateChangeReasonLocalUnmuted 4 本地用户恢复接收远端视频流或本地用户启用视频模块
    kRemoteVideoStateChangeReasonRemoteMuted 5 远端用户停止发送视频流或远端用户禁用视频模块
    kRemoteVideoStateChangeReasonRemoteUnmuted 6 远端用户恢复发送视频流或远端用户启用视频模块
    kRemoteVideoStateChangeReasonRemoteOffline 7 远端用户离开频道。
    状态转换参考 OnStreamRemove

    RtcUser

    用户信息

    成员属性

    名称 类型 只读 描述
    user_id String 否 用户 id
    meta_data String 否 元数据

    FirstFrameSendState

    首帧发送状态

    名称 值 描述
    kFirstFrameSendStateSending 0 发送中
    kFirstFrameSendStateSent 1 发送成功
    kFirstFrameSendStateEnd 2 发送失败

    FirstFramePlayState

    首帧播放状态

    名称 值 描述
    kFirstFramePlayStatePlaying 0 播放中
    kFirstFramePlayStatePlayed 1 播放成功
    kFirstFramePlayStateEnd 2 播放失败

    MessageSendResultCode

    发送用户消息或者房间消息的结果

    名称 值 描述
    MESSAGE_CODE_SUCCESS 0 用户P2P消息发送成功
    MESSAGE_CODE_ROOM_SUCCESS 200 房间Broadcast消息发送成功
    MESSAGE_CODE_ERROR_TIMEOUT 1 发送超时,没有发送
    MESSAGE_CODE_ERROR_BROKEN 2 通道断开,没有发送
    MESSAGE_CODE_ERROR_NOT_RECEIVER 3 找不到接收方
    MESSAGE_CODE_ERROR_NOT_JOIN 100 没有加入房间
    MESSAGE_CODE_ERROR_NO_CONNECTION 102 没有可用的数据传输通道连接
    MESSAGE_CODE_ERROR_EXCEED_MAX_LENGTH 103 消息超过最大长度,当前为64KB
    MESSAGE_CODE_ERROR_EMPTY_USER 104 用户id为空
    MESSAGE_CODE_ERROR_UNKNOWN 1000 未知错误

    StreamMixingEvent

    合流事件事件类型

    名称 值 描述
    kStreamMixingStart 1 合流开始
    kStreamMixingStartSuccess 2 合流启动成功
    kStreamMixingStartFailed 3 合流启动失败
    kStreamMixingUpdate 4 更新合流
    kStreamMixingStop 5 合流结束
    kStreamMixingChangeMixType 6 服务端合流/端云一体合流
    kStreamMixingFirstAudioFrameByClientMix 7 收到客户端合流音频首帧
    kStreamMixingFirstVideoFrameByClientMix 8 收到客户端合流视频首帧
    kStreamMixingStopTimeoutByServer 9 停止服务端合流超时
    kStreamMixingUpdateTimeout 10 更新合流超时
    kStreamMixingRequestParamError 11 合流布局参数错误

    StreamMixingType

    合流类型

    名称 值 描述
    kStreamMixingTypeByServer 0 服务端合流
    kStreamMixingTypeByClient 1 客户端合流

    RecordingInfo

    本地录制的详细信息

    成员属性

    名称 类型 只读 描述
    file_path String 否 录制文件的绝对路径,包含文件名和文件后缀
    video_codec_type VideoCodecType 否 录制文件的视频编码类型,参看 VideoCodecType
    width number 否 录制视频的宽,单位:像素。纯音频录制请忽略该字段
    height number 否 录制视频的高,单位:像素。纯音频录制请忽略该字段

    RecordingProgress

    本地录制进度

    成员属性

    名称 类型 只读 描述
    duration number 否 当前文件的累计录制时长,单位:毫秒
    file_size number 否 当前录制文件的大小,单位:byte